Television viewing is moving to internet protocol (IP) video formats such as Apple HLS, Microsoft Smooth and Adobe Flash. These formats use a technique referred to as segmented HTTP transport (SHT). Using the SHT technique, a customer premise equipment (CPE) device pre-fetches video in segments, stores the segments in memory, decodes the segments and presents the video in a continuous manner. The CPE device fetches segments as needed so that the segment count does not drop below a threshold and the CPE device can continuously play the IP video stream without interruption. The CPE device typically fetches segments from a list of segments called an index file or manifest file. The index file or manifest file is typically downloaded as the CPE device starts a session and can be refreshed periodically to accommodate live streams that have no predetermined endpoint.
Another feature that has been layered on top of SHT is referred to as adaptive streaming. Rather than encoding a piece of video for a single quality or bit rate, adaptive streaming encodes a piece of video for multiple bit rates. In effect, systems using adaptive streaming produce multiple versions of the same piece of video, one for each bit rate. In this instance, the manifest file construct is extended with information that allows the CPE device to request different bitrates as it adapts to network traffic.
The CPE device typically uses a variety of algorithms to determine which bitrate to choose. In some implementations, if operating conditions such as network congestion or CPU load cause the CPE device to run out of data or drop video frames, then the device may choose a lower quality version for the next segment in the sequence. In other implementations, if the content is arriving quickly, the CPE device may request a higher quality version of the next segment in the sequence.
Another improvement added to adaptive SHT is live streaming. Because during live streaming, content is being encoded in real-time and new segments are being created, the manifest file is typically being constantly updated. Further, because content is being produced and consumed in real-time the CPE device is typically constantly requesting an updated version of the manifest file to get information on how to request the newly added segments of video.
Like reference numbers and designations in the various drawings indicate like elements.